#ifndef NETWORK_MANAGER_H
#define NETWORK_MANAGER_H

#include <stdbool.h>
#include "esp_err.h"

// 网络类型
typedef enum
{
    NET_TYPE_NONE,
    NET_TYPE_WIFI_STA,
    NET_TYPE_WIFI_AP,
    NET_TYPE_ETH,
} net_type_t;

typedef struct
{
    char ip[20];
    char netmask[20];
    char gw[20];
} net_ip_info_t;

void network_manager_init(void);
void network_manager_deinit(void);

// // WiFi STA 模式
// void network_manager_start_wifi_sta();
// void network_manager_stop_wifi_sta();

// // WiFi AP 模式
// void network_manager_start_wifi_ap();
// void network_manager_stop_wifi_ap();

// // Ethernet 以太网
// void network_manager_start_eth();
// void network_manager_stop_eth();

// // 选择 WiFi 或 Ethernet
// bool network_manager_use_wifi();
// void network_manager_enable_wifi(bool enable);
// void network_manager_enable_eth(bool enable);

// 查询网络状态
bool network_manager_is_connected();
const net_ip_info_t* network_manager_get_ip();

// // 设置 DHCP 或 静态 IP
// void network_manager_set_dhcp(bool enable);
// bool network_manager_is_dhcp_enabled();
// void network_manager_set_static_ip(const char *ip, const char *netmask, const char *gateway, const char *dns);

// // 事件处理
// void network_manager_register_event_handler();

#endif // NETWORK_MANAGER_H
